pub fn sigmoid(x: f64) -> f64 {
    1. / (1. + (-x).exp())
}

pub fn dsigmoid(y: f64) -> f64 {
    y * (1. - y)
}

pub fn tanh(x: f64) -> f64 {
    x.tanh()
}

pub fn dtanh(y: f64) -> f64 {
    1. - y * y
}